"""
 - 函数多值参数指的是函数接收的参数个数不确定

 - python 中有 两种 多值参数：
     参数名前增加 * 可以接收 元组
     参数名前增加 ** 可以接收 字典

 - 一般在给多值参数命名时，习惯使用以下两个名字
     *args —— 存放 元组 参数，前面有一个 *
     **kwargs —— 存放 字典 参数，前面有两个 *
     args 是 arguments 的缩写，有变量的含义
     kw 是 keyword 的缩写，kwargs 可以记忆 键值对参数

"""


def demo1(num, args, kwargs):
    """不使用多值参数"""
    print(num)
    print(args)
    print(kwargs)
    print("")


demo1(1, (2, 3, 4, 5, 6), {"name": "xiaoming", "age": 18})

"""
输出结果：
    1
    (2, 3, 4, 5, 6)
    {'name': 'xiaoming', 'age': 18}
"""


def demo2(num, *args, **kwargs):
    """使用多值参数"""
    print(num)
    print(args)
    print(kwargs)
    print("")


demo2(1, 2, 3, 4, 5, 6, name="xiaoming", age=18)  # 默认把第一个参数赋值个num,其他单个参数组成元组 传给了 args，键值对参数传给了kwargs

"""
输出结果：
    1
    (2, 3, 4, 5, 6)
    {'name': 'xiaoming', 'age': 18}
"""
